package com.vepick.vue.interfaceClient;

import java.sql.*;
import java.util.Scanner;

import com.vepick.metier.lancement.Connexion;
import com.vepick.metier.requetes.Requetes_client;

public class InterfaceClient {

	public static final int CLIENT_ABONNE = 1;
	public static final int CLIENT_NON_ABONNE = 2;
	public static final int QUITTER_APPLICATION = 99;

	/*
	 * Ecran principal d'acc�s aux services V�Pick
	 */
	public static void ouvrirInterfaceClient() throws SQLException {

		// Variables locales n�cessaires au fonctionnement du programme
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		int choix = 0;

		// Connection � la base de donn�es
		Connection conn = Connexion.getConnexion();

		// Traitement du choix du client
		while (choix != QUITTER_APPLICATION) {

			// Affichage des diff�rentes fonctionnalit�s
			afficherFonctionnalites();

			// Fonctionnalit� tapp�e par le client
			choix = scanner.nextInt();

			// Redirection vers l'interface choisie
			switch (choix) {
			case CLIENT_ABONNE:
				System.out.println("Saisissez votre identifiant: ");
				int idClient = scanner.nextInt();
				System.out.println("Saisissez votre mot de passe: ");
				String codeClient = scanner.next();
				System.out.println("idClient: "+idClient +", codeClient: "+codeClient);
				if(connexionClient(conn, idClient, codeClient)==1)InterfaceClientAbo.ouvrirInterfaceClientAbo(conn, idClient);
				break;
			case CLIENT_NON_ABONNE:
				InterfaceClientNonAbo.ouvrirInterfaceClientNonAbo(conn);
				break;
			case QUITTER_APPLICATION:
				try {
					conn.close();
					System.out.println("A bientot!");
					System.exit(0);
				} catch (SQLException e) {
					System.out
							.println("Erreur dans la fermeture de la connexion");
					System.exit(-1);
					e.printStackTrace();
				}
				break;
			default:
				break;
			}
		}
	}

	private static void afficherFonctionnalites() {
		System.out
				.println("#######################################################");
		System.out
				.println("#                  Ecran principal                    #");
		System.out
				.println("#######################################################");
		System.out.println("\n\n");
		System.out.println("Client abonne : " + CLIENT_ABONNE);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Client non abonne : " + CLIENT_NON_ABONNE);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Quitter l'application : " + QUITTER_APPLICATION);
	}
	
	private static int connexionClient (Connection conn, int idClient, String codeClient) throws SQLException{
		return Requetes_client.connecterAbo(conn, idClient, codeClient);	
	}
}
